const express = require('express');
const router = express.Router();
const shortid = require('shortid')
const moment = require('moment')
const AccountModel = require('../../models/AccountModel')
const isCheckLogin = require('../../middleware/isCheckLogin')

/** 首页 */
router.get('/', (req, res) => {
  res.redirect('/account')
})

/* 记账本 list 页面 */
router.get('/account', isCheckLogin, function(req, res, next) {
  AccountModel.find().sort({time: -1}).exec().then((data) => {
    return res.render('list', {title: '记账本', records: data, moment: moment})
  }).catch(() => {
    return res.status(500).send('获取列表失败')
  })
});

/* 新增账单页面 */
router.get('/account/add', isCheckLogin, function(req, res, next) {
  res.render('add', { title: '添加记录' });
});

/* 添加成功&失败的表单页面 */
router.post('/account', isCheckLogin, function(req, res, next) {
  AccountModel.create({
    ...req.body,
    time: moment(req.body.time).toDate() // 处理时间，将字符串转换为时间格式
  }).then(() => {
    res.render('success', { msg: '添加成功~~', url: '/account' })
  }).catch(() => {
    res.status(500).send('添加失败')
  })
});

/** 通过 pramas 的方式删除数据 */
router.get('/account/:id', isCheckLogin, (req, res) => {
  const id = req.params.id;
  AccountModel.deleteOne({_id: id}).then(() => {
    res.render('success', { msg: '删除成功~~', url: '/account' })
  }).catch(() => {
    res.status(500).send('删除失败')
  })
})

module.exports = router;
